New Session replay on every exception

Every error, traced to its line.

Artisan is error tracking for web teams. Exceptions, slow queries and deploys live in one timeline, searchable down to the commit that shipped them.

Free for 5,000 events a month · SOC 2 Type II

Trace req_8f2c1a

5 spans · 412 ms

  1. Request

    POST /checkout

    web-3 · Chrome 128 · macOS

    412 ms

  2. Middleware

    Authenticate session

    Redis GET session:9d41 · hit

    4 ms

  3. Query

    Load open orders

    Postgres · 38 queries, 1 missing index

    318 ms

  4. Job

    ChargeCard dispatched

    Queue payments · attempt 3 of 3

    async

  5. Exception

    PaymentTimeoutException

    app/Billing/Charge.php:88

    ART-2288 · same fingerprint · merged

    ART-2291

Release 4.18.2 · a41f9c2

Resolved

p95 response time, POST /checkout

184

ms

0

budget ≤ 300

600 ms

Events
1,284 24h
Users hit
312
Error rate
0.02 %

Resolved by Dana Reyes · Sep 12, 2026, 2:08 PM PT · deploy #918

The error tracker behind 2,140 production apps

Fieldnote

BRIGHTLINE

tally.app

Marrow Health

OXBOW

parcel/ship

One timeline, from request to root cause

Artisan keeps the exception, the request and the deploy that shipped it together, so a bug never loses the story of how it happened.

Stack traces with source
Every frame shows the line, the local variables and the commit that last touched it.
Charge.php:88 · a41f9c2
Request traces
Queries, cache hits and queued jobs line up under the request that caused them.
412 ms · 38 queries · 2 jobs
Grouping that holds
Ten thousand identical exceptions become one issue with a count, not ten thousand emails.
fingerprint 9c1e04 · 1,284 events
Alerts that wait
Page on a regression or a spike, not on the first 404 of the morning.
> 50 events / 5 min → #oncall
Search every event
Filter by user, route, release or any tag your code attaches.
route:/checkout release:4.18.*
Releases and suspects
Each deploy is marked on the graph; new issues point at the commit that introduced them.
deploy #918 · 3 suspect commits

Open the issue. Artisan already did the digging.

Every exception arrives grouped, with the request, the stack and the last deploy attached. Assign it from the same screen your on-call opened from Slack.

Breadcrumbs before the crash
The clicks, requests and log lines from the 30 seconds before it threw.
Comments on the frame
Discuss a null where it happened in the stack, not in a thread nobody finds later.
Ownership that routes itself
CODEOWNERS and suspect commits decide who gets paged, not whoever happens to be awake.
Read the triage guide

checkout-api / production

ART-2291

PaymentTimeoutException

First seen 11:42 AM PT · assigned to Dana Reyes

release:4.18.1 · route:/checkout

Gateway did not respond within 8,000 ms while charging order #58213 (attempt 3 of 3).

Event Release Host ms Status
evt_4c19a2 4.18.0 web-1 8,012 500
evt_4c1b07 4.18.1 web-3 8,004 500
evt_4c1f5e 4.18.1 web-3 8,019 500
evt_4c2210 4.18.2 web-2 184 200

app/Billing/Charge.php

in Charge::capture

  1. 85 public function capture(Order $order): Receipt
  2. 86 {
  3. 87 $payload = $this->payloadFor($order);
  4. 88 $response = $this->gateway->charge($payload, timeout: 8000);
  5. 89 return Receipt::fromResponse($response);

Dana Reyes linked a fix

PR #4127 · a41f9c2 · deploying to production

What catching it first adds up to

Across Artisan apps · Q3 2026

events grouped into issues last quarter
3.1B
median time from first exception to Slack alert
41 s
fewer repeat incidents in a team’s first year
63%
SDKs and integrations, maintained by Artisan
58
An engineer at a standing desk reviewing a graph on two monitors in a bright office

We found a checkout timeout in nine minutes because the issue already pointed at the query, the deploy and the commit. Nobody grepped a log.

Adaeze Morgan

Staff Engineer, Fieldnote

47 → 9 min

median time to resolve a checkout incident

From first exception to fixed in three moves

No agent to babysit. Most teams see their first grouped issue within five minutes of installing.

  1. Step 1

    Install the SDK

    Add one package and a DSN; errors, traces and deploys start flowing on the next request.

    npm install @artisan/sdk

  2. Step 2

    Triage the issue

    Open the grouped issue, read the trace, and assign it to whoever wrote the suspect commit.

    ART-2291 · 1,284 events

  3. Step 3

    Ship and resolve

    Link the pull request; Artisan resolves the issue when the release lands and reopens it if it returns.

    deploy #918 · 2:08 PM PT

58 integrations

Plugs into the stack you already run

SDKs for the languages on your servers, and alerts wherever your on-call already looks.

Browse integrations
  • Js

    01

    JavaScript

    Browser and Node

  • Py

    02

    Python

    Django, FastAPI

  • Rb

    03

    Ruby

    Rails, Sidekiq

  • Ph

    04

    PHP

    Symfony, workers

  • Go

    05

    Go

    net/http, gRPC

  • Sw

    06

    iOS

    Swift crash reports

  • Sl

    07

    Slack

    Alerts, triage

  • Gh

    08

    GitHub

    Suspect commits

  • Pd

    09

    PagerDuty

    On-call paging

  • Jr

    10

    Jira

    Two-way issues

  • Ot

    11

    OpenTelemetry

    Traces in, spans out

  • Ap

    12

    REST API

    JSON, OpenAPI 3.1

Catch the next bug before a customer does.

Free for 5,000 events a month. Most teams install the SDK and see their first issue in under five minutes.